#ifndef FUNCION_H_
#define FUNCION_H_

#include <string>
#include "tipo_struct.h"

/*****************************************************************
 *	Funcion.h
 * 
 *  Descripcion: Clase que representa una interfaz para objetos functor
 *  que al ser ejecutados reciben un tipo struct, un entero sin signo 
 *  y una cadena por parametro y devuelven un unsigned int.
 * **************************************************************/

class Funcion {
	
	public:
	
	virtual ~Funcion(){} //Destructor virtual
	
	virtual unsigned int operator() (const std::string &expr, TipoStruct* tipo_struct, unsigned int entero) = 0;
	
};

#endif
